package stylistcrm.core.services.security.service;

import stylistcrm.core.services.order.exception.BizException;
import stylistcrm.core.services.security.dto.UserDto;
import stylistcrm.core.services.security.exception.*;
import stylistcrm.core.services.user.User;

/**
 * Created by yanwc on 2016/9/7.
 */
public interface SecurityService {

    /**
     * 用户注册
     * @param name 用户显示名称
     * @param loginName 登录名
     * @param password 密码
     * @return
     */
    UserDto singup(String name,String loginName,String password) throws UserNameAlreadyExistsException ;

    /**
     * 获取当前用户登录信息
     * @return 用户
     * @throws ReloginException 重新登录异常
     */
    UserDto getCurrentUser() throws ReloginException;

    /**
     * 通过编号查找指定用户
     * @param id
     * @return
     */
    UserDto getUserById(long id);

    /**
     * 是具有操作权限
     * @param viewName 视图名称
     * @param operationName 操作名称
     * @return true具有操作权限 false无操作权限
     */
    boolean isOperationAuthority(String viewName,String operationName)throws ReloginException;


    /**
     * 是否有视图权限
     * @param viewName 视图名称
     * @return true有视图权限、false无视图权限
     */
    boolean isViewAuthority(String viewName)throws ReloginException;

    boolean disable(UserDto userDto);

    boolean enable(UserDto userDto);

    /**
     * 保存用户与角色关联关系表
     * @param secUserId
     * @param roleId
     * @return
     * @throws BizException
     */
    Boolean saveUserRole(Long secUserId,Long roleId) throws BizException;

}
